/**
 * 模型类demo案例
 */

import * as Cesium from "cesium";
import * as EasyCesium from "@xhymf1992/easy-cesium";

export function drawParticals() {
    let position = Cesium.Cartesian3.fromDegrees(120, 30, 100);
    let options = {
        id: "1",
        name: "point",
        position,
        viewer: window.viewer
    }

    let pointEntity = new EasyCesium.PointEntity(options);
    pointEntity.init();
    pointEntity.coordAxisShow = true;

    // @ts-ignore 模拟火焰
    window.particles = new EasyCesium.Particles({
        id: "1", // id，必填
        name: "test", // 名称，必填
        position, // 粒子集位置，必填
        heading: 0.0, // 绕局部坐标系Z轴顺时针旋转角度(弧度制)，可选，默认为0
        pitch: 0.0, // 绕局部坐标系Y轴顺时针旋转角度(弧度制)，可选，默认为0，朝向正北
        roll: 0.0, // 绕局部坐标系X轴逆时针旋转角度(弧度制)，可选，默认为0
        num: 20, // 粒子数量，可选，默认为1
        emitterOptions: {
            type: 2, // 发射器类型：0-box; 1-circle; 2-cone; 3-sphere
            dimensions: [5, 10, 20], // box类型时起作用，设置box的三个轴的长度，单位米
            radius: 10, // cicle和sphere类型时起作用，设置半径，单位米
            angle: 30 // cone类型时起作用，设置锥角，角度制
        }, // 粒子发射器配置，可选，默认为type=1, radius=0.5
        loop: true, // 是否循环播放，可选，默认为true
        scale: [1.0, 4.0], // particleLife开始时和结束时粒子的缩放值，可选，默认为[1.0, 1.0]
        color: ["rgba(255,255,255,0.6)", "rgba(204,220,255,0.4)"], // particleLife开始时和结束粒子的颜色，可选，默认为[rgba(255,255,255,1),rgba(255,255,255,1)]
        image: "https://hz.gridworld.com.cn:50443/te3/di/get_file/water.png/", // 粒子图片链接或canvas element，必填
        imageSize: [20, 20], // 粒子图片像素大小，可选，默认为[1，1]
        speed: [2, 4], // 粒子的最小和最大移动速度，单位米，可选，默认为[1.0, 1.0]
        lifetime: 15, // 粒子发射器的生命时长，单位秒，可选，默认为永久
        particleLife: [5, 10], // 粒子的最小和最大生命时长，单位秒，可选，默认为[5.0, 5.0]
        mass: [1.0, 1.0], // 粒子的最小和最大质量，单位千克，可选，默认为[1.0, 1.0]
        viewer: window.viewer
    })

    // @ts-ignore 初始化粒子集
    window.particles.init();

    // @ts-ignore 视角飞到粒子集
    window.particles.flyTo();
    
}